# [[Course 3. Client Needs and Software Requirements]]
#requirements
## Week 1. Introduction to Requirements
### Lesson 1: What is a requirement/requirement activities?
- I think it's similar to CAPM project requirements. Collecting requirements from stakeholders.
- Definition: "Requirements are specific descriptions of your client's needs"
-
![[Screenshot 2022-05-02 at 4.17.12 PM.png]]
#### Eliciting Requirements
- More then gathering, (asking what they want)
- Figuring out what they want and need.
- Observe customer in real world.
- The right product for the right problem.
#### Requirement Activities
- Wants - are desired functions that they like to see in the product.
- Needs - Core functions required in order to address the specific problem, that the product is intended to solve.
- Pick apart the needs and wants.
![[Screenshot 2022-05-02 at 4.20.54 PM.png]]
- I guess it's to ask why do they want that wants.
#### Expressing Requirements
- Express what the clients' need through different means. Like user stories..
#### Prioritising Requirements
- Must be done, can be done, will be done.
- Product backlog = Requirements Prioritisation
- ask client to prioritise
- Manage requirements ==How to manage though==
- When there are changes. Reorganise them.
### Lesson 2: Types of requirements
#### Types of requirements (Business Rules)
- Business Requirements - Why is this project need? Why is this product needed? Business value.
- Constraint by Business Rules
- Privacy policy
- Brand uniformity requirement
- Government regulation
-
#### User Requirements
- What end users can do on the product. What the product should do for the user.
- Express can be though Use Cases.
![[Screenshot 2022-05-02 at 4.46.56 PM.png]]
- User Story
- "As a ____ i want to ___ so that ____"
#### Functional Requirements
- Behavior that the product should do or support. described as inputs and outputs.
- The system SHOULD...
- Need to be specific on what the system should be able to do.
- Represented by information flow diagram
- How the system function as a whole.
#### Non-Functional Requirements
- Non-functional requirements serve as a description of "how well" a product must perform.
- Complimentary to functional requirement (What it should do), non-functional requirement is "how well it function"
- also can be term as Quality requirements
- Security requirement is non-functional?!
- It makes up large part of requirements.
#### Additional Requirements Types
- External interface requirements - Where the product sits in larger system.
- How the software is located e.g "App must be able to communicate to the customer database and an ad server."
- Data Flow Diagram shows where the software located in.
- Development constraints
- What limiting the product development.
- Can hold the development until technology become available.
### Controlling scope
- Important to balance defining requirements, then control the scope/requirements. And also manage changes
- Scope creeping.
- Start with
- Product Vision - "The long term strategic concept of the ultimate purpose and form of a new system " - Karl Weigers
- What is the value, and how it add value to the customer.
- Customer can ask for a scope change even though it's still align with product vision.
- "The Scope draws the boundary between what's in and what's out for the project" - Karl Weigers
- Part of the part during solicitation phase, to manage expectations.
**Techniques to defend Scope creeps**
- Make Expectations Clear - Everything have clear start and end date
- Draw the scope with your client - Setting boundaries
- Client prioritise the requirements
- Ask "Is this in scope?"
- Estimate the amount of effort.
- Velocity
- Evaluate the implication of each change - time, cost, scope, quality
### Requirements and Design
- Requirements is about the "WHAT". What need to be done to deliver
- Design is "HOW". How will development team implement the product to satisfy client's needs.
- Agile - work on both requirements and design concurrently. Often combined.
- Draw it out in a visual way.
- Don't premature limit and constraint the development requirement
- e.g User can submit request. vs User click the button.
- Which limit ideas, and solutions
- Example of how Design sneak into requirements in a bad way, unintentionally.
When thinking through, ask myself the following:
![[Screenshot 2022-05-05 at 1.12.02 AM.png]]
Don't impose design solution to prematurely.
[
![Coursera](data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDE2LjIuMCwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPgo8IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPgo8c3ZnIHZpZXdCb3g9IjAgMCAxMTU1IDE2NCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgc3Ryb2tlLW1pdGVybGltaXQ9IjIiPjxwYXRoIGQ9Ik0xNTkuNzUgODEuNTRjMC00NC40OSAzNi42My04MC40NyA4Mi40My04MC40NyA0Ni4xMiAwIDgyLjc2IDM2IDgyLjc2IDgwLjQ3IDAgNDQuMTYtMzYuNjQgODAuOC04Mi43NiA4MC44LTQ1LjggMC04Mi40My0zNi42OC04Mi40My04MC44em0xMjUuNjEgMGMwLTIyLjI0LTE5LjMtNDEuODctNDMuMTgtNDEuODctMjMuNTUgMC00Mi44NSAxOS42My00Mi44NSA0MS44NyAwIDIyLjU3IDE5LjMgNDIuMiA0Mi44NSA0Mi4yIDIzLjkyIDAgNDMuMTgtMTkuNjMgNDMuMTgtNDIuMnptNzA1LjYzIDEuMzFjMC00OC43NCAzOS41OC04MS43OCA3NS41Ny04MS43OCAyNC41MyAwIDM4LjYgNy41MiA0OC4wOCAyMS45MmwzLjc3LTE5aDM2Ljc5djE1NS40aC0zNi43OWwtNC43NS0xNmMtMTAuNzkgMTEuNzgtMjQuMjEgMTktNDcuMSAxOS0zNS4zMy0uMDUtNzUuNTctMzEuMTMtNzUuNTctNzkuNTR6bTEyNS42MS0uMzNjLS4wOS0yMy41MjctMTkuNDctNDIuODM1LTQzLTQyLjgzNS0yMy41OSAwLTQzIDE5LjQxMS00MyA0M3YuMTY1YzAgMjEuNTkgMTkuMyA0MC44OSA0Mi44NiA0MC44OSAyMy44NSAwIDQzLjE0LTE5LjMgNDMuMTQtNDEuMjJ6TTk0NS43OCAyMlY0aC00MC4yM3YxNTUuMzloNDAuMjNWNzUuNjZjMC0yNS4xOSAxMi40NC0zOC4yNyAzNC0zOC4yNyAxLjQzIDAgMi43OS4xIDQuMTIuMjNMOTkxLjM2LjExYy0yMC45Ny4xMS0zNi4xNyA3LjMtNDUuNTggMjEuODl6bS00MDQuMjcuMDF2LTE4bC00MC4yMy4wOS4zNCAxNTUuMzcgNDAuMjMtLjA5LS4yMi04My43MmMtLjA2LTI1LjE4IDEyLjM1LTM4LjI5IDMzLjkzLTM4LjM0IDEuMzc2LjAwNCAyLjc1Mi4wODEgNC4xMi4yM0w1ODcuMSAwYy0yMSAuMTctMzYuMjIgNy4zOS00NS41OSAyMi4wMXpNMzM4Ljg4IDk5LjJWNC4wMWg0MC4yMlY5NC4zYzAgMTkuOTUgMTEuMTIgMzEuNzMgMzAuNDIgMzEuNzMgMjEuNTkgMCAzNC0xMy4wOSAzNC0zOC4yOFY0LjAxaDQwLjI0djE1NS4zOGgtNDAuMjF2LTE4Yy05LjQ4IDE0LjcyLTI0Ljg2IDIxLjkyLTQ2LjEyIDIxLjkyLTM1Ljk4LjAxLTU4LjU1LTI2LjE2LTU4LjU1LTY0LjExem0zOTEuNzQtMTcuNDhjLjA5LTQzLjUxIDMxLjIzLTgwLjc0IDgwLjYyLTgwLjY1IDQ1LjguMDkgNzguMTEgMzYuNzggNzggODAgLjAxIDQuMjczLS4zMyA4LjU0LTEgMTIuNzZsLTExOC40MS0uMjJjNC41NCAxOC42NSAxOS44OSAzMi4wOSA0My4xMiAzMi4xNCAxNC4wNiAwIDI5LjEyLTUuMTggMzguMy0xNi45NGwyNy40NCAyMmMtMTQuMTEgMTkuOTMtMzkgMzEuNjYtNjUuNDggMzEuNjEtNDYuNzUtLjE2LTgyLjY3LTM1LjIzLTgyLjU5LTgwLjd6bTExOC4xMi0xNi4xNGMtMi4yNi0xNS43LTE4LjU5LTI3Ljg0LTM3Ljg5LTI3Ljg3LTE4LjY1IDAtMzMuNzEgMTEuMDYtMzkuNjMgMjcuNzNsNzcuNTIuMTR6bS0yNjEuNCA1OS45NGwzNS43Ni0xOC43MmM1LjkxIDEyLjgxIDE3LjczIDIwLjM2IDM0LjQ4IDIwLjM2IDE1LjQzIDAgMjEuMzQtNC45MiAyMS4zNC0xMS44MiAwLTI1LTg0LjcxLTkuODUtODQuNzEtNjcgMC0zMS41MiAyNy41OC00OC4yNiA2MS43Mi00OC4yNiAyNS45NCAwIDQ4LjkyIDExLjQ5IDYxLjQgMzIuODNsLTM1LjQ0IDE4Ljc1Yy01LjI1LTEwLjUxLTE1LjEtMTYuNDItMjcuNTgtMTYuNDItMTIuMTQgMC0xOC4wNiA0LjI3LTE4LjA2IDExLjQ5IDAgMjQuMyA4NC43MSA4Ljg3IDg0LjcxIDY3IDAgMzAuMjEtMjQuNjIgNDguNTktNjQuMzUgNDguNTktMzMuODItLjAzLTU3LjQ2LTExLjE5LTY5LjI3LTM2Ljh6TTAgODEuNTRDMCAzNi43MyAzNi42My43NCA4Mi40My43NGMyNy45NDctLjE5NiA1NC4xODIgMTMuNzM3IDY5LjY3IDM3bC0zNC4zNCAxOS45MmE0Mi45NzIgNDIuOTcyIDAgMDAtMzUuMzMtMTguMzJjLTIzLjU1IDAtNDIuODUgMTkuNjMtNDIuODUgNDIuMiAwIDIyLjU3IDE5LjMgNDIuMiA0Mi44NSA0Mi4yYTQyLjUwMiA0Mi41MDIgMCAwMDM2LjMxLTIwbDM0IDIwLjI4Yy0xNS4zMDcgMjMuOTU1LTQxLjkwMiAzOC40MzEtNzAuMzMgMzguMjhDMzYuNjMgMTYyLjM0IDAgMTI1LjY2IDAgODEuNTR6IiBmaWxsPSIjMDA1NkQyIiBmaWxsLXJ1bGU9Im5vbnplcm8iLz48L3N2Zz4=)
](https://www.coursera.org/)
1. [Client Needs and Software Requirements](https://www.coursera.org/learn/client-needs-and-software-requirements/home/welcome)
2. [Week 1](https://www.coursera.org/learn/client-needs-and-software-requirements/home/week/1)
3. Module 1: Supplemental Resources
[Previous](https://www.coursera.org/learn/client-needs-and-software-requirements/lecture/pKg2d/3-1-4-requirements-and-design)[Next](https://www.coursera.org/learn/client-needs-and-software-requirements/exam/mqgPs/module-1-assessment-graded)
Item Navigation
# Module 1: Supplemental Resources
## Listed below are selected resources related to the topics presented in this module:
### Requirements
_A wikipedia explanation about functional requirements if you wanted more information._
"Functional requirement - Wikipedia, the free encyclopedia." 2011. 19 Nov. 2015 <[https://en.wikipedia.org/wiki/Functional_requirement](https://en.wikipedia.org/wiki/Functional_requirement)>
_A glossary of software engineering terms by the IEEE. Would be a good resource to reference if you are unsure about software related terms._
"IEEE standard glossary of software engineering terminology ..." 2008. 19 Nov. 2015 <[http://www.mit.jyu.fi/ope/kurssit/TIES462/Materiaalit/IEEE_SoftwareEngGlossary.pdf](http://www.mit.jyu.fi/ope/kurssit/TIES462/Materiaalit/IEEE_SoftwareEngGlossary.pdf)>
_An article that differentiates business requirements from functional requirements._
"Business Requirements vs. Functional Requirements ..." 2014. 19 Nov. 2015 <[http://enfocussolutions.com/business-requirements-vs-functional-requirements/](http://enfocussolutions.com/business-requirements-vs-functional-requirements/)>
_A site with great tips for writing requirements._
"Creating a Lean, Mean Requirements Machine | The Agile ..." 2015. 19 Nov. 2015 <[https://www.atlassian.com/agile/requirements](https://www.atlassian.com/agile/requirements)>
_An excellent reading about requirements._
"Four Techniques for Defining Project Scope - Jama Software." 2013. 29 Nov. 2018 <[](http://go.jamasoftware.com/rs/jamasoftware/images/wiegers-four-techniques-for-defining-project-scope-EDU.pdf%3E)[http://go.jamasoftware.com/rs/jamasoftware/images/wiegers-four-techniques-for-defining-project-scope-EDU.pdf](http://go.jamasoftware.com/rs/jamasoftware/images/wiegers-four-techniques-for-defining-project-scope-EDU.pdf) >
### Diagrams
_Explains data flow diagrams and how to draw them._
"Data Flow Diagram (DFD) - Tripod." 2009. 19 Nov. 2015 <[http://myyee.tripod.com/cs457/dfd.htm](http://myyee.tripod.com/cs457/dfd.htm)>
_A wikipedia article on System context diagrams._
"System context diagram - Wikipedia, the free encyclopedia." 2011. 19 Nov. 2015 <[https://en.wikipedia.org/wiki/System_context_diagram](https://en.wikipedia.org/wiki/System_context_diagram)>
_An in depth explanation about information flow diagrams. Written in pretty technical language, so may not be the best resource for those who do not have a computer science background._
"Class notes" 2013. 19 Nov. 2015 <[http://xyuan.myweb.cs.uwindsor.ca/311/slide_plus.pdf](http://xyuan.myweb.cs.uwindsor.ca/311/slide_plus.pdf)>